# 1、导入相关库
import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
import tushare as ts
from tqdm import tqdm
import matplotlib.pyplot as plt
from copy import deepcopy as copy
from torch.utils.data import DataLoader,TensorDataset

# 2、获取数据
class GetData:
    """ GetData类，用于获取和处理数据 """

    def __init__(self,stock_id,save_path):
        """
        初始化方法
        :param stock_id:ID
        :param save_path:数据保存路径
        """
        self.stock_id = stock_id
        self.save_path = save_path
        self.data = None

    def getData(self):
        """
        获取数据
        将数据进行一些处理，并保存到文件中
        :return:处理后的数据
        """
        # 获取历史数据
        self.data = ts.get_hist_data(self.stock_id).iloc[::-1]
        # 选择特定列作为数据
        self.data = self.data[['open','close','high','low','volume']]
        # 计算数据列的最小值和最大值
        self.close_min = self.data['volume'].min()
        self.close_max = self.data['volume'],max()
        # 对数据进行归一化处理
        self.data = self.data.apply(lambda x:(x - min(x)) / (max(x) - min(x)))
        # 将处理后的数据保存到文件
        self.data.to_csv(self.save_path)

        return self.data

    def process_data(self,n):
        '''
        处理数据
        将数据分为特征和标签，并划分为训练集和测试集
        :param n:滑动窗口的大小
        :return:训练集的特征、测试集的特征、训练集的标签、测试集的标签
        '''
        